import { IConfig } from 'umi'; // ref: https://umijs.org/config/
import packages from './packages-config';

process.env.ENVS_SAVE_PLACE = process.env.ENVS_SAVE_PLACE || "index.html"; // 默认把环境变量保存到 dist/index.html 内, 修改 dist/index.html 将影响全局环境变量配置。

// 整体配置项参考umi配置 https://umijs.org/zh-CN/config
export default {
  webpack5: {}, // 必须开启
  // 配置主题，实际上是配 less 变量。
  theme: {
    'hzeroui-input-height-base': '28px',
    'btn-height-base': '28px',
    'font-size-base': '12px',
    'text-color': '#333',
    'border-radius-base': '2px',
    'primary-color': '#29BECE',
    'layout-header-height': '48px',
    'modal-mask-bg': 'rgba(0, 0, 0, 0.288)',
    'pagination-item-size': '26px',
    'form-item-margin-bottom': '14px',
    // 'icon-font-family': 'c7n-icomoon'
  },
  // 是否启用按需加载
  dynamicImport: {
    loading: '@hzerojs/plugin-layout/browsers/components/PageLoading',
  },
  // 开启fastRefresh此配置，每次修改config文件都需要重新启动dev server
  // fastRefresh: {},
  // 配置环境变量
  define: {
    'process.env': {
      API_HOST: 'http://localhost:8080',
      WEBSOCKET_HOST: 'http://localhost:8080/hpfm/sock-js',
      PLATFORM_VERSION: 'SASS',
      CLIENT_ID: 'localhost',
    },
  },
  manifest: {
    basePath: '/',
  },
  alias: {
    // 'components': 'hzero-front/lib/components',
    // 'utils': 'hzero-front/lib/utils',
    // 'services': 'hzero-front/lib/services',
    // '@/assets': join(__dirname, '../src/assets'),
  },
  plugins: [
    require.resolve('hzero-front'),
    require.resolve('@hzerojs/plugin-vue'),
  ],
  hzeroVue: {},
  presets: [
    require.resolve('@hzerojs/preset-hzero'),
    // 'hzero-cli-preset-ui',
  ],
  hzeroMicro: {
    // 子模块配置 在这里面配置后当执行build:ms的时候可以选择到对应的子模块
    packages,
    // 配置公共模块，在打包的时候会预先编译公共模块
    // common: [
    //   {
    //     name: 'demo1',
    //   },
    // ],
    // 指定暴露出去的模块
    // mfExposes: {
    //   TestCom: '@/components/TestCom',
    // },
  },
  hash: true,
  // 同 umi routes https://umijs.org/zh-CN/config#routes
  routes: [
    {
      path: '/blank',
      authorized: true,
      component: './blank',
    },
  ]
} as IConfig;
